package com.yixun.lbx.controller.farm;

import com.yixun.controller.BaseController;
import com.yixun.entity.YxUser;
import com.yixun.lbx.entity.YxProCompany;
import com.yixun.lbx.service.CompanyService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import reactor.util.annotation.Nullable;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
 * 养殖场专用  controller
 * */
@Controller
@RequestMapping("/farm")
public class Farm_ViewController extends BaseController {
    private final CompanyService companyService;

    public Farm_ViewController(CompanyService companyService) {
        this.companyService = companyService;
    }

    /*
     * 档案管理 > 基本信息
     * */
    @GetMapping("/baseInfo")
    public String goBaseInfo(HttpServletResponse response, Model model) {
        YxUser sessionUser = this.getSessionUser();
        String user_name = sessionUser.getUser_name();
        YxProCompany yxProCompany = new YxProCompany();
        yxProCompany.setCode(user_name);
        YxProCompany companyByIdOrNameOrCode = companyService.getCompanyByIdOrNameOrCode(yxProCompany);
        if (companyByIdOrNameOrCode == null) {
            try {
                response.setContentType("text/html;charset=utf-8");
                response.getWriter().println("没有权限或者没有找到企业相关信息");
                response.getWriter().close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            model.addAttribute("code", companyByIdOrNameOrCode.getCode());
            return "/lbx/farm/baseInfo";
        }
        return null;
    }

    /*
     * 档案管理 > 证照信息
     * */
    @GetMapping("/licenseInfo")
    public String goLicenseInfo() {
        return "/lbx/farm/licenseInfo";
    }

    /*
     * 档案管理 > 人员信息
     * */
    @GetMapping("/personnelInfo")
    public String goPersonInfo() {
        return "/lbx/farm/personnelInfo";
    }

    /*TODO===================================蜂群管理===========================================*/
    /*
     * 蜂群管理 > 蜂箱管理
     */
    @GetMapping("/beehive")
    public String goBeehiveList() {
        return "/lbx/farm/beehive";
    }

    //添加 更新页面
    @GetMapping("/addBh")
    public String addBh(Model model, @Nullable String boxId) {
        model.addAttribute("boxId", boxId);
        return "/lbx/farm/addBh";
    }

    /*
     * 蜂群管理 > 蜂群管理
     * */
    @GetMapping("/beeColony")
    public String goBeeColonyList() {
        return "/lbx/farm/beeColony";
    }

    //添加 更新页面
    @GetMapping("/addBs")
    public String addBs(Model model, @Nullable String beeId) {
        model.addAttribute("beeId", beeId);
        return "/lbx/farm/addBs";
    }

    /*
     * 蜂群管理 > 繁育管理
     * */
    @GetMapping("/breed")
    public String goBreedList() {
        return "/lbx/farm/breed";
    }

    //添加 更新页面
    @GetMapping("/addBb")
    public String addBreed(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addBb";
    }

    /*TODO================产品管理==============================================================*/
    /*
     * 产品管理 > 产品信息
     * */
    @GetMapping("/productInfo")
    public String goProductInfo() {
        return "/lbx/farm/productInfo";
    }

    //添加 更新页面

    @GetMapping("/addPi")
    public String addPi(Model model, @Nullable String cpId) {
        model.addAttribute("cpId", cpId);
        return "/lbx/farm/addPi";
    }

    /*
     * 产品管理 > 产量管理
     * */
    @GetMapping("/yield")
    public String goYield() {
        return "/lbx/farm/yield";
    }

    // 添加 更新页面
    @GetMapping("/addPy")
    public String addYield(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addPy";
    }

    /*
     * 产品管理 > 检测信息
     * */
    @GetMapping("/detectInfo")
    public String goDetectInfo() {
        return "/lbx/farm/detectInfo";
    }

    //添加 更新页面
    @GetMapping("/addPc")
    public String addDetectInfo(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addPc";
    }

    /*TODO================养殖管理==============================================================*/

    /*
     * 养殖管理 > 诊疗记录
     * */
    @GetMapping("/breedTreat")
    public String goBreedTreat() {
        return "/lbx/farm/breedTreat";
    }

    // 添加 更新页面
    @GetMapping("/addBt")
    public String addBt(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addBt";
    }

    /*
     * 养殖管理 > 消毒记录
     * */
    @GetMapping("/disinfect")
    public String goDisinfect() {
        return "/lbx/farm/disinfect";
    }

    //添加 更新页面yx_pro_breed_feed
    @GetMapping("/addBd")
    public String addBd(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addBd";
    }

    /*
     * 养殖管理 > 饲喂记录
     * */
    @GetMapping("/breedFeed")
    public String goBreedFeed() {
        return "/lbx/farm/breedFeed";
    }

    //添加 更新页面yx_pro_breed_medication
    @GetMapping("/addBf")
    public String addBf(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addBf";
    }

    /*
     * 养殖管理 > 用药记录
     * */
    @GetMapping("/medication")
    public String goMedication() {
        return "/lbx/farm/medication";
    }

    //添加 更新页面
    @GetMapping("/addBm")
    public String addBm(Model model, @Nullable String id) {
        model.addAttribute("id", id);
        return "/lbx/farm/addBm";
    }

    /*
     * 信息管理 > 政策法规
     * */
    @GetMapping("/policiesRegulations")
    public String goPoliciesRegulations() {
        return "/lbx/farm/policiesRegulations";
    }

    /*
     * 信息管理 > 养殖知识
     * */
    @GetMapping("/breedingKnowledge")
    public String goBreedingKnowledge() {
        return "/lbx/farm/breedingKnowledge";
    }
}
